/*
编码转换
*/
const fs = require('fs');
const path = require('path');

// let r = fs.readFileSync(path.resolve(__dirname, 'gbk'));
// console.log(r); //<Buffer c4 e3 ba c3> gbk中每个汉字占两个字节(如果是英文字母 仍然是1个字节)
//一个小于127(ASCII)的字符的意义与原来相同
//，但【两个【大】于】 127 的字符连在一起时，就表示一个汉字
// So 当我们读到一个字节(8位,0-255) 它如果是小于127的 说明它是一个ASCII字符
// 但如果它是大于127的 说明它是一个中文字符的"一半" 我们会往后再读一个字节 用两个字节 来解码中文字符
/*
前面的一个字节（他称之为高字节）从0xA1用到0xF7，后面一个字节（低字节）从 0xA1 到 0xFE；
这样我们就可以组合出大约7000多个(247-161)*(254-161)=(7998)简体汉字了。
还把数学符号、日文假名和ASCII里原来就有的数字、标点和字母都重新编成两个字长的编码。这就是全角字符，127以下那些就叫半角字符。
把这种汉字方案叫做 GB2312。GB2312 是对 ASCII 的中文扩展
*/

let r = fs.readFileSync(path.resolve(__dirname, 'gbk'),'utf8'); //中文会乱码,英文不会
console.log(r); // ���



/*const iconv = require('iconv-lite');
const r = fs.readFileSync(path.resolve(__dirname, 'gbk'));
const result = iconv.decode(r, 'gbk');
console.log(result); //你好*/
